<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>事件绑定</title>
    <style>
      body{
        height: 20000px;
      }
    </style>
  </head>
  <body>
    <div id="root"></div>
    <script src="./js/react.development.js"></script>
    <script src="./js/react-dom.development.js"></script>
    <script src="./js/babel.min.js"></script>

    <script type="text/babel">
        //声明一个函数
        function cb(){
          console.log('我是一个独立函数哦~');
        }

        function cb2(){
          return () => {
            console.log('我是返回的一个函数哦~');
          }
        }

        //对象方法
        let obj = {
          test: function(){
            console.log("我是一个对象方法")
          }
        }

        //创建虚拟 DOM 对象
        let vdom = <div>
            <h2>绑定事件的写法</h2>
            <button onClick={function(){
              console.log('你点击了我~~~');
            }}>点击我</button>
            <button onClick={() => {
              console.log('我是一个箭头函数哦~~~');
            }}>箭头函数也行哦</button>
            <button onClick={cb}>独立函数</button>
            <button onClick={cb2()}>函数调用</button>
            <button onClick={obj.test}>对象方法</button>
            <hr/>


            <h2>获取事件源</h2>
            <div 
              style={{width: '200px', height: '200px', backgroundColor: '#cef'}}
              onMouseOver={function(e){
                //改变背景颜色
                e.target.style.background = 'yellowgreen';
              }}
              ></div>
            <hr />


            <h2>阻止默认行为</h2>
            <a href="http://www.baidu.com" onClick={(e) => {
              console.log('run run run')
              //阻止默认行为
              e.preventDefault();
            }}>百度</a>

            <hr />
            <h2>事件对象</h2>
            <button onClick={e => {
              console.log(e);
            }}>点我</button>


            <hr />
            <h2>change 事件</h2>
            <input type="text" onChange={() => {
              console.log('我的值改变啦');
            }} />

          </div>;
        
        //渲染
        ReactDOM.render(vdom, document.querySelector('#root'));
    </script>
</body>
</html>
